package com.huaxin.device.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.huaxin.device.dto.ResponseResult;
import com.huaxin.device.dto.request.EquipmentCategoryCreateReqDTO;
import com.huaxin.device.dto.request.EquipmentCategoryPageListReqDTO;
import com.huaxin.device.dto.request.EquipmentCategoryUpdateReqDTO;
import com.huaxin.device.models.EquipmentCategory;

import java.util.List;

public interface EquipmentCategoryService extends IService<EquipmentCategory> {

    /**
     * 创建设备分类
     */
    ResponseResult<EquipmentCategory> create(EquipmentCategoryCreateReqDTO in);

    /**
     * 获取设备分类
     */
    EquipmentCategory getByCategoryId(String id);

    /**
     * 更新设备分类
     */
    ResponseResult<String> update(EquipmentCategoryUpdateReqDTO in);

    /**
     * 删除设备分类（必须是叶子节点且无关联设备）
     */
    ResponseResult<String> delete(String id);

    /**
     * 分页查询设备分类
     */
    ResponseResult<IPage<EquipmentCategory>> pageQuery(EquipmentCategoryPageListReqDTO in);

    /**
     * 获取所有设备分类树形结构
     */
    List<EquipmentCategory> getCategoryTree();
}